#ifndef _RAW_COMMAND_H_
#define _RAW_COMMAND_H_

#include <string>
#include <map>
#include <vector>
using std::string;
using std::map;
using std::vector;

class RawCommand
{
public:
    RawCommand();
    virtual ~RawCommand();
    string getValue(const string& key) const;
    map<string, string> const& getKeywords() const {
        return m_keywords;
    }
    void setValue(const string& str);
    void setValue(const string& key, const string& value);
    unsigned int getContentLength();
    vector<unsigned char> & getContent();
    void addContentByte(unsigned char c);
private:
    map<string, string> m_keywords;
    vector<unsigned char> m_content;
    unsigned int m_contentLength;
};

#endif
